package day315;

import java.util.Map;

/**
 * @author tmh
 * @date 2023/3/15 23:30
 * @description
 */
public class T2 {
    public static void main(String[] args) {


    }

    public int maxArea(int[] height) {
        int max = 0;
        //这个循环是最简便的，他不会出现i和j重复的下标，比如a[1]和a[1]的比较
        //对于比较过的，也不会重复比较,即就是比较过了a[1]和a[2]，就不会在去比较a[2]和a[1]
        //这个代码运行能够，但是时间会报错超时，不过问题不大，学习思路即可
        for (int i = 0; i < height.length-1; i++) {
            for (int j = i + 1; j < height.length; j++) {
                int area = (j - i) * Math.min(height[i], height[j]);
                max = Math.max(max, area);
            }
        }
        return max;
    }

    public int maxArea2(int[] height) {
        int max = 0;
        for (int i = 0, j = height.length - 1; i < j; ) {
            //这里得到了最小的高度之后，i就往中间移位，也就是谁的高度小，谁就移动，最后在
            //计算移动之前的面积，所以下面才是j-i+1()因为之前的时候i往中间移动了一个
            //所以这里要吧这个1给加回来
            int minHeight = height[i] <= height[j] ? height[i++] : height[j--];
            int area = (j - i + 1) * minHeight;
            max = Math.max(max, area);

        }
        return max;
    }

}
